home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / etc / Rpc_GetName.c < prev    next >
C/C++ Source or Header  |  1991-04-12  |  3KB  |  111 lines

  1. /* 
  2.  * Rpc_GetName.c --
  3.  *
  4.  *    Rpc_GetName library routine.
  5.  *
  6.  * Copyright 1991 Regents of the University of California
  7.  * Permission to use, copy, modify, and distribute this
  8.  * software and its documentation for any purpose and without
  9.  * fee is hereby granted, provided that this copyright
  10.  * notice appears in all copies.  The University of California
  11.  * makes no representations about the suitability of this
  12.  * software for any purpose.  It is provided "as is" without
  13.  * express or implied warranty.
  14.  */
  15.  
  16. #ifndef lint
  17. static char rcsid[] = "$Header: /sprite/src/lib/c/etc/RCS/Rpc_GetName.c,v 1.2 91/04/12 18:46:50 kupfer Exp $ SPRITE (Berkeley)";
  18. #endif /* not lint */
  19.  
  20. #include <rpc.h>
  21. #include <stdio.h>
  22. #include <string.h>
  23.  
  24. static char *rpcNames[] = {
  25.         "Bad command",
  26.         "Echo 1",
  27.         "Echo 2",
  28.         "Send",
  29.         "Receive",
  30.         "Gettime",
  31.         "Fs prefix",
  32.         "Fs open",
  33.         "Fs read",
  34.         "Fs write",
  35.         "Fs close",
  36.         "Fs unlink",
  37.         "Fs rename",
  38.         "Fs mkdir",
  39.         "Fs rmdir",
  40.         "Fs mkdev",
  41.         "Fs link",
  42.         "Fs sym_link",
  43.         "Fs get_attr",
  44.         "Fs set_attr",
  45.         "Fs get_attr_path",
  46.         "Fs set_attr_path",
  47.         "Fs get_io_attr",
  48.         "Fs set_io_attr",
  49.         "Fs dev_open",
  50.         "Fs select",
  51.         "Fs io_control",
  52.         "Fs consist",
  53.         "Fs consist_reply",
  54.         "Fs copy_block",
  55.         "Fs migrate",
  56.         "Fs release",
  57.         "Fs reopen",
  58.         "Fs recovery",
  59.         "Fs domain_info",
  60.         "Proc mig_command",
  61.         "Proc remote_call",
  62.         "Proc remote_wait",
  63.         "Proc getpcb",
  64.         "Remote wakeup",
  65.         "Sig send",
  66.         "Fs release_new",
  67. };
  68.  
  69. static int numNames = sizeof(rpcNames) / sizeof(char *);
  70.   
  71.  
  72. /*
  73.  *----------------------------------------------------------------------
  74.  *
  75.  * Rpc_GetName --
  76.  *
  77.  *    Return the human-readable name for an RPC.
  78.  *
  79.  * Results:
  80.  *    Copies the name into namePtr, or as much as will fit.
  81.  *
  82.  * Side effects:
  83.  *    None.
  84.  *
  85.  *----------------------------------------------------------------------
  86.  */
  87.  
  88. void
  89. Rpc_GetName(rpcNum, resultLen, resultPtr)
  90.     int rpcNum;            /* which RPC */
  91.     int resultLen;        /* how large is the array */
  92.     char *resultPtr;        /* where to put the name */
  93. {
  94.     char tempName[RPC_MAX_NAME_LENGTH];
  95.     char *whichName;
  96.  
  97.     if (rpcNum < 0 || rpcNum >= numNames) {
  98.     sprintf(tempName, "Rpc <%d>", rpcNum);
  99.     whichName = tempName;
  100.     } else {
  101.     whichName = rpcNames[rpcNum];
  102.     }
  103.  
  104.     /*
  105.      * The -1 is to allow room for the trailing null, in case 
  106.      * "whichName" is too big for the buffer..
  107.      */
  108.     (void)strncpy(resultPtr, whichName, resultLen-1);
  109.     resultPtr[resultLen-1] = '\0';
  110. }
  111.